import { makeAutoObservable, runInAction } from 'mobx'
import { http } from '@/utils'

export default class UserStore {
  userInfo = {}
  constructor() {
    makeAutoObservable(this)
  }

  setUserInfo = (userInfo) => {
    this.userInfo = userInfo
  }

  getUserInfo = async () => {
    try {
      const res = await http.get('/user/profile')
      // mobx 开启严格模式，异步赋值不允许（警告）
      // runInAction 创建一个立即触发的临时 Action，用于在异步操作完成之后调用，更新状态。
      runInAction(() => {
        this.userInfo = res
      })
    } catch {}
  }
}
